import { fileURLToPath } from 'url';
import path, { dirname } from 'path';
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
    }
  },
  
  // CSS 相关配置
  css: {
    modules: {
      scopeBehaviour: 'local',
    },
    preprocessorOptions: {
      scss: {
        additionalData: `$injectedColor: orange;`
      },
    },
    // 全局样式文件
    //global: './styles/global.css'
  },

  // 服务器配置
  server: {
    host: '0.0.0.0',
    port: 3000,
    open: true,
    strictPort: true, // 如果端口已占用直接退出，不会尝试下一个可用端口
    proxy: {
      '/api': {
        target: 'http://your.api.endpoint', // 后端 API 接口地址
        changeOrigin: true, // 支持跨域，虚拟的站点需要更管origin
        rewrite: (path) => path.replace(/^\/api/, '') // 重写路径，去掉/api
      },
    },
    // 浏览器兼容性
    cors: true
  },

  // 构建配置
  build: {
    outDir: 'dist', // 指定输出路径
    assetsDir: 'assets', // 指定生成静态资源的存放路径
    sourcemap: false, // 是否生成 source map 文件
  },

  // 优化配置
  optimizeDeps: {
    include: ['some-dep-package'], // 在预构建中强制包含的依赖
    exclude: ['some-other-package'], // 排除的依赖
  },

  // 环境变量和模式
  envDir: './env', // 指定.env文件所在的文件夹
  envPrefix: 'VITE_', // 指定环境变量前缀
});